package class02

/*
	给定一个数组arr，已知其中所有的值都是非负的，将这个数组看作一个容器。
	请返回容器能装多少水
	比如：arr = {3，1，2，5，2，4}，根据值画出直方图就是容器形状，该容器可以装下5格水
	再比如：arr = {4，5，1，3，2}，该容器可以装下2格水。
*/

func GetWater(arr []int) int {
	var ans int
	if len(arr) < 3 {
		return ans
	}
	L := 1
	R := len(arr) - 2
	leftMax := arr[0]
	rightMax := arr[len(arr)-1]
	for L <= R {
		if leftMax < rightMax {
			if leftMax - arr[L] > 0 {
				ans += leftMax - arr[L]
			}
			leftMax = max(leftMax, arr[L])
			L++
		} else {
			if rightMax - arr[R] > 0 {
				ans += rightMax - arr[R]
			}
			rightMax = max(rightMax, arr[R])
			R--
		}
	}
	return ans
}
